package com.winit.schedule.core.repository.entity;

import java.io.Serializable;
import java.util.List;

import com.winit.schedule.core.repository.constants.QuartzManagerType;

public class QuartzSchedulerEntity implements Serializable {

    /**
     * 
     */
    private static final long     serialVersionUID = -5414027324073026896L;

    private String                taskTrackerUuid;

    private String                taskGroup;

    private String                schedulerInstanceId;

    private String                schedulerName;

    private SchedulerStatus       schedulerStatus;

    private long                  registerTime;

    private long                  heartbeatTime;

    private int                   jobTriggerCount;

    private QuartzManagerType     command;

    private List<QuartzJobEntity> jobs;

    public String getTaskTrackerUuid() {
        return taskTrackerUuid;
    }

    public void setTaskTrackerUuid(String taskTrackerUuid) {
        this.taskTrackerUuid = taskTrackerUuid;
    }

    public String getSchedulerInstanceId() {
        return schedulerInstanceId;
    }

    public void setSchedulerInstanceId(String schedulerInstanceId) {
        this.schedulerInstanceId = schedulerInstanceId;
    }

    public String getSchedulerName() {
        return schedulerName;
    }

    public void setSchedulerName(String schedulerName) {
        this.schedulerName = schedulerName;
    }

    public SchedulerStatus getSchedulerStatus() {
        return schedulerStatus;
    }

    public void setSchedulerStatus(SchedulerStatus schedulerStatus) {
        this.schedulerStatus = schedulerStatus;
    }

    public long getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(long registerTime) {
        this.registerTime = registerTime;
    }

    public long getHeartbeatTime() {
        return heartbeatTime;
    }

    public void setHeartbeatTime(long heartbeatTime) {
        this.heartbeatTime = heartbeatTime;
    }

    public List<QuartzJobEntity> getJobs() {
        return jobs;
    }

    public void setJobs(List<QuartzJobEntity> jobs) {
        this.jobs = jobs;
    }

    public String getTaskGroup() {
        return taskGroup;
    }

    public void setTaskGroup(String taskGroup) {
        this.taskGroup = taskGroup;
    }

    public QuartzManagerType getCommand() {
        return command;
    }

    public void setCommand(QuartzManagerType command) {
        this.command = command;
    }

    public int getJobTriggerCount() {
        return jobTriggerCount;
    }

    public void setJobTriggerCount(int jobTriggerCount) {
        this.jobTriggerCount = jobTriggerCount;
    }

    public enum SchedulerStatus {
        SHUTDOWN, STANDBY, STARTED, UNKONW;
    }

}
